Rate control plays an important role in the encoding of live video over a channel with a limited bandwidth, for example over an Internet or a wireless network, and has been widely studied by many researchers. Existing results on rate control as disclosed in [1], [2], [3], [4] are based on the assumption that the computational resources are always sufficient and hence, the desired encoding frame rate is always guaranteed.
However when a live video is encoded via software under a multi-task environment, the computational resources of the Central Processing Unit (CPU) may not always be sufficient for the encoding process. This is due to the fact that the computational resources of the CPU may be taken up by other processes having a higher priority. In real time video coding systems, encoded bits are stored in a buffer before they are transmitted over the network to a decoder. When insufficient computational resources are allocated for the encoding process, the actual encoding frame rate is less than the desired frame rate, and the number of generated bits stored in buffer is too low. As a result, the available channel bandwidth is wasted. This phenomenon is especially common when the video encoding process is implemented on a handheld device with limited computational capabilities.
Also, most existing rate control methods are focused on the case that the available channel bandwidth for the transmission of the video is. constant. However, when the live video is transmitted over a limited bandwidth channel like the Internet or a wireless network, the available channel bandwidth for the transmission of the video usually varies over time. When the available bandwidth of the channel decreases, the number of bits in the buffer accumulates. When the number of bits in the buffer is too large, the encoder usually skips some frames to reduce the buffer delay and to avoid buffer overflow. Frame skipping produces undesirable motion discontinuity in the video sequence.
A recent teaching in reference [5] discloses a rate control method that can adapt the encoding rate to the varying available bandwidth. The rate control method uses a fluid-flow model to compute a target bit rate for each frame of the video sequence. However, the rate control method as disclosed in [5] does not take into account the available computational resources. Moreover, the total number of bits allocated to each Group of Pictures (GOP) are distributed to each P frame in the GOP evenly.